#include <stdio.h>
#include <memory.h>
#define clr(a) memset(a,0,sizeof(a))
#define N 1030
int c[N][N];
int n;
int lowbit(int x)
{
    return x&(-x);
}
void Update(int x,int y,int t)
{
    int i,j;
    i=x;
    while(i<=n)
    {
        j=y;
        while(j<=n)
        {
            c[i][j]+=t;
            j+=lowbit(j);
        }
        i+=lowbit(i);
    }
}
int Query(int x,int y)
{
    int i,j,s=0;
    i=x;
    while(i>0)
    {
        j=y;
        while(j>0)
        {
            s+=c[i][j];
            j-=lowbit(j);
        }
        i-=lowbit(i);
    }
    return s;
}
int main()
{
    //freopen("bin\\debug\\in.txt", "r", stdin);
    int k;
    int x,y,xt,yt,t;

    scanf("%*d%d",&n);
    while(scanf("%d",&k)!=EOF && k!=3)
    {
        if(k==1)    //Update
        {
            scanf("%d%d%d",&x,&y,&t);
            x++;
            y++;
            Update(x,y,t);
        }
        if(k==2)    //Query
        {
            scanf("%d%d%d%d",&x,&y,&xt,&yt);
            x++;
            y++;
            xt++;
            yt++;
            t=Query(xt,yt)-Query(x-1,yt)-Query(xt,y-1)+Query(x-1,y-1);
            printf("%d\n",t);
        }
    }

    return 0;
}
